//
//  BLNavigationController.swift
//  BLLiveTelecast
//
//  Created by BigL055 on 16/6/18.
//  Copyright © 2016年 bigL.liveTelecast.com. All rights reserved.
//

import UIKit

class BLNavigationController: UINavigationController,UIGestureRecognizerDelegate{
    
    
    override func loadView() {
        super.loadView()
        // appearanceWhenContainedIn:获取某个类下面全局外观，获取NavigationController所有导航条
        if #available(iOS 9.0, *) {
            let bar = UINavigationBar.appearanceWhenContainedInInstancesOfClasses([self.classForCoder])
            // 设置导航条标题 变大变宽 => 导航条
            let attr = [NSFontAttributeName : UIFont.boldSystemFontOfSize(20)]
            bar.titleTextAttributes = attr
            
        } else {
            // Fallback on earlier versions
        }


    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
//        setGestureRecognizer()
    }
    
//    /**
//     自定义全屏滑动返回手势
//     */
//    func setGestureRecognizer(){
//        // 获取系统自带滑动手势的target对象
//        let target = self.interactivePopGestureRecognizer?.delegate
//        // 创建全屏滑动手势，调用系统自带滑动手势的target的action方法
//        let pan = UIPanGestureRecognizer(target: target, action: Selector("handleNavigationTransition:"))
//        // 设置手势代理，拦截手势触发
//        pan.delegate = self;
//        // 给导航控制器的view添加全屏滑动手势
//        self.view.addGestureRecognizer(pan)
//        // 禁止使用系统自带的滑动手势
//        self.interactivePopGestureRecognizer?.enabled = false
//    }
    
    /**
     返回按钮
     */
    func backBtnClick() {
        self.popViewControllerAnimated(true)
    }
    
    /**
     重写pushViewController
     
     - parameter viewController:
     - parameter animated:
     */
    override func pushViewController(viewController: UIViewController, animated: Bool) {
        
        if(self.viewControllers.count>0){
            viewController.hidesBottomBarWhenPushed = true;
        }
        super.pushViewController(viewController, animated: animated)
    }
    
    
    override func popViewControllerAnimated(animated: Bool) -> UIViewController? {
        
        /// 判断有无播放,有就切断弹幕
        if BLPlayerViewControllerTool.shareInstance.player != nil {
            BLAuthSocket.sharedInstance.cutOffSocket()
            BLDanmuSocket.sharedInstance.cutOffSocket()
            BLAuthSocket.sharedInstance.InfoBlock = nil
        }

      return  super.popViewControllerAnimated(animated)
    }

    
    /** 什么时候调用：每次触发手势之前都会询问下代理，是否触发。
     拦截手势触发
     - parameter gestureRecognizer
     - returns: 是否需要触发手势
     */
    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
        // 注意：只有非根控制器才有滑动返回功能，根控制器没有。
        // 判断导航控制器是否只有一个子控制器，如果只有一个子控制器，肯定是根控制器
        if (self.childViewControllers.count == 1) {
            // 表示用户在根控制器界面，就不需要触发滑动手势，
            return false;
        }
        return true;
    }
    
}
